本文提供了此 API 参考文档的补充说明。
该方法 ChangeItemKey(TItem, TKey) 不会修改嵌入的 item
键;它只是替换保存在查找字典中的密钥。 因此,如果newKey
与嵌入item
的键不同,则无法使用返回的item
密钥进行访问GetKeyForItem。
如果 KeyedCollection<TKey,TItem> 没有查找字典,则此方法将不执行任何操作。
每个密钥在 KeyedCollection<TKey,TItem> 中必须是唯一的。 键不能为 null
。
此方法是 O(1) 操作。
供实现者的注意事项
在修改嵌入在项中的键之前,必须调用此方法以更新查找字典中的密钥。 如果字典创建阈值为 -1,则不需要调用此方法。
请勿将 ChangeItemKey 方法作为派生类的公共方法公开。 滥用此方法会使查找字典与项键不同步。 例如,将键 null
设置为某个值,然后再设置为另一个值,会将该项的多个键添加到查找字典中。 在内部公开此方法以允许可变项键:当项的键更改时,此方法用于更改查找字典中的键。